import { Chunk, ChunkType, Context } from '../../core';
import { isCssModule, isScriptModule } from '../../utils';

export function groupChunks(context: Context) {
  const jsModules: string[] = [];
  const cssModules: string[] = [];

  const modules = context.moduleGraph.getModules();
  modules.forEach(moduleId => {
    const module = context.moduleGraph.getModule(moduleId);

    if (isScriptModule(module.type!)) {
      jsModules.push(moduleId);
    } else if (isCssModule(module.type!)) {
      cssModules.push(moduleId);
    }
  });

  if (jsModules.length) {
    const chunk = new Chunk('js', ChunkType.Js, jsModules);
    context.chunkGraph.addChunk(chunk);
  }

  if (cssModules.length) {
    const chunk = new Chunk('css', ChunkType.Css, cssModules);
    context.chunkGraph.addChunk(chunk);
  }
}
